package com.project.personalfundmanager.shared.DAOs;

import java.io.Serializable;

import javax.persistence.Embedded;
import javax.persistence.Id;

import com.project.personalfundmanager.shared.models.TaxInfoGroupModel;

public class TaxInfoGroupDAO implements Serializable
{
	private static final long serialVersionUID = 1L;

	@Embedded
	private TaxableIncomeDAO taxIncome;

	@Embedded
	private Section10DAO sec10DAO;

	@Embedded
	private Section24DAO sec24DAO;

	@Embedded
	private Section80CDAO sec80CDAO;

	@Embedded
	private SectionOthersDAO secOthersDAO;

	@Embedded
	private PayableTaxDAO payableTaxDAO;

	@Id
	private Long uid;

	public TaxInfoGroupDAO()
	{
	}

	public TaxInfoGroupDAO( TaxInfoGroupModel model )
	{
		this.taxIncome = new TaxableIncomeDAO( model.getTaxableIncome() );
		this.sec10DAO = new Section10DAO( model.getSection10Model() );
		this.sec24DAO = new Section24DAO( model.getSection24Model() );
		this.sec80CDAO = new Section80CDAO( model.getSection80CModel() );
		this.secOthersDAO = new SectionOthersDAO( model.getSectionOthersModel() );
		this.payableTaxDAO = new PayableTaxDAO( model.getTaxCalculationModel() );
	}

	public Long getUid()
	{
		return uid;
	}

	public void setUid( Long uid )
	{
		this.uid = uid;
	}

	public TaxableIncomeDAO getTaxIncome()
	{
		return taxIncome;
	}

	public void setTaxIncome( TaxableIncomeDAO taxIncome )
	{
		this.taxIncome = taxIncome;
	}

	public Section10DAO getSec10DAO()
	{
		return sec10DAO;
	}

	public void setSec10DAO( Section10DAO sec10DAO )
	{
		this.sec10DAO = sec10DAO;
	}

	public Section24DAO getSec24DAO()
	{
		return sec24DAO;
	}

	public void setSec24DAO( Section24DAO sec24DAO )
	{
		this.sec24DAO = sec24DAO;
	}

	public Section80CDAO getSec80CDAO()
	{
		return sec80CDAO;
	}

	public void setSec80CDAO( Section80CDAO sec80CDAO )
	{
		this.sec80CDAO = sec80CDAO;
	}

	public SectionOthersDAO getSecOthersDAO()
	{
		return secOthersDAO;
	}

	public void setSecOthersDAO( SectionOthersDAO secOthersDAO )
	{
		this.secOthersDAO = secOthersDAO;
	}

	public PayableTaxDAO getPayableTaxDAO()
	{
		return payableTaxDAO;
	}

	public void setPayableTaxDAO( PayableTaxDAO payableTaxDAO )
	{
		this.payableTaxDAO = payableTaxDAO;
	}
}
